1. Field of the Invention
The present invention generally relates to the field of computer software, and more particularly relates to design and development of software to that operates across communications network interfaces.
2. Description of Related Art
Web services are a method of providing distributed processing to allow physically or organizationally disparate entities to present an integrated computational application. As an example of such a web service where a retailer is able to provide an interface, through a web service, to external organizations that allows those external organizations to retrieve inventory, pricing, and other data about the retailer's products. Such web services further allow the external organization to place or obtain the status of orders from that retailer. This web service can, for example, be used by a World Wide Web application operated by the external organization to provide a convenient interface to the retailer's products.
Web services are described, for example, through one or more Web Services Description Language (WSDL) documents. WSDL documents are XML documents that conform to a standard format and that describe one or more network services. WSDL documents describe these network services as a set of endpoints that operate on messages containing either document-oriented or procedure-oriented information. WSDL files generally contain end point definitions for the functional network services that are the true focus of that particular web service.
Operators of web services, such as the retailer described above, desire to monitor the operational performance of their web services to ensure proper and adequate service to their clients. Conventional methods for monitoring web services are intrusive. Exemplary systems periodically invocate the web service operations to detect and signal any performance degradation. Such an approach is used by companies such as Keynote Systems to monitor web server/site performance. These conventional approaches are generally less accurate since they capture the performance, e.g., processing delays, for only a small subset of invocations for that web service. These approaches similarly increase the processing load of the web service by introducing the additional monitoring-related invocations. This increased loading has increased impact during high-load intervals, the time when monitoring web services performance is very important. These approaches are further limited to monitoring stateless web services.
Monitoring of web services can entail further limitations. Some transactions that are provided by a web service, such as a query for a retailer's inventory, can be processed by a single server. Other transactions entail some processing steps that are performed by a second server, which is possibly at a different business, such as a partner, supplier, and so forth.
Intrusive monitoring of stateful web services requires the creation of several test client accounts. Dummy accounts on each of the transaction servers are also created for each of these client accounts. The test client accounts in such systems are configured to periodically initiate a transaction that simulates a real transaction. In the case of having the second server perform some of the processing for a transaction, the dummy accounts may not be available on the second server (because it is under the control of a different entity). In such a situation, the original server has to estimate or guess the performance of the second server in order to support an intrusive web services monitor.
Existing non-intrusive schemes for monitoring a web service include modifying the service's WSDL file to include additional endpoints that define monitoring functions for that web service. Including these monitoring endpoints in such WSDL structures have a disadvantage that the monitoring endpoint and its operations are tied to the particular web service defined by that WSDL document. This restricts the flexibility in the design of the monitoring service. For example, the external interfaces and functions of the monitoring service for this web service are defined within the functional web service WSDL document. Modification of the available monitoring functions for this web service thereby requires modification, regression testing and redeployment of the entire web service.
More elaborate web service architectures, such as such as the architecture defined by the Open Grid Services Infrastructure (OGSI), include a fairly complex monitoring component. However, such web service architectures have not gained significant market acceptance.
Therefore a need exists to overcome the problems with the prior art as discussed above, and particularly for a way to more efficiently monitor web services.